local R_EARTH = 6371000
local CONSTA = R_EARTH * math.pi / 180;
local sin = math.sin
local cos = math.cos
local acos = math.acos

local function distance(v1, v2, v3, v4)
    --    return v1 + v2 + v3 + v4
    local c = sin(v2) * sin(v4) * cos(v1 - v3) + cos(v2) * cos(v4)
    local d = CONSTA * acos(c)
    return d
end

--local v = 4+89
--local v = KEYS[1] + KEYS[2]
local v = distance(KEYS[1], KEYS[2], KEYS[3], KEYS[4])
redis.call("set", "distance", v);